#ifndef __MARCADOR_H
#define __MARCADOR_H

#include "color.h"

/**
@brief Maneja los datos de los marcadores
*/
class Marcador{

	private:
		/**
		@brief Cadena de caracteres que almacena el tipo de letra
		*/
		char* tipo_letra; 
		/**
		@brief Cadena de caracteres que almacena el texto a mostrar en el marcador
		*/
		char* texto;
		/**
		@brief Tamaño de la letra
		*/
		int tam_letra;
		/**
		@brief Estilo de la letra (Normal,Bold,Italic)
		*/
		int estilo_letra;
		/**
		@brief Variable para indicar la alineacion del texto
		*/
		int alineacion;
		/**
		@brief Color de la letra
		*/
		Color color_letra;
		/**
		@brief Posicion X del marcador
		*/
		int posx;
		/**
		@brief Posicion Y del marcador
		*/
		int posy;
		/**
		@brief Ancho del marcador
		*/
		int ancho;
		/**
		@brief Alto del marcador
		*/
		int alto;
		/**
		@brief Tamaño del marco
		*/
		int marco;		
		/**
		@brief Color del fondo
		*/
		Color fondo;
		/**
		@brief Color del borde
		*/
		Color borde;
		
	public:
		/**
    		@brief Constructor por defecto
   		*/
		Marcador();
		/**
     		@brief Constructor por valor
   		*/
		Marcador(int posx,int posy ,int ancho,int alto,int marco,const Color& fondo,const Color& borde);
		/**
    		@brief Modifica el tipo de letra que contiene el marcador
     		@param texto Cadena de caracteres que indica el texto que queremos
		@param tipo_letra Tipo de letra con el que queremos escribir el texto
     		@param tam Tamaño de la letra
     		@param estilo Estilo de letra (0=Normal,1=Negrita,2=Itálica,3=Negrita e Itálica)
     		@param alineacion Como se alinea el texto en el marcador (0=Izquierda, 1=Centro)
     		@param color_letra Color de la letra
     		@pre tipo_letra tiene que existir
     		@pre estilo entre 0 y 3
   		*/ 
		void SetLetra(char* texto,char* tipo_letra,int tam,int estilo,int alineacion,const Color& color_letra );
		/**
     		@brief Pinta el marcador en la ventana
    		@pre Se debe de haber establecido un tipo de letra
   		*/
		void Pinta()const;
		/**
     		@brief Operador de asignación
   		*/
		Marcador& operator=(const Marcador& m);
		/**
     		@brief Destructor
   		*/
		~Marcador();


};

#endif
